Proces wybuchy supernowej typu implozyjnego rozpoczyna się od kolapsu grawitacyjnego, nagle zastopowanego przez siły jądrowe (QCD), co powoduje wytworzenie fali uderzeniowej. Szczegóły  tego procesu są bardzo złożone i są przedmiotem badań naukowych. Poniżej przedstawiam ,,kanoniczne’’ sferycznie symetryczne rozwiązanie numeryczne kodem GR1D: https://stellarcollapse.org/index.php/GR1D.html Poniższa analiza, oparta głównie o pliki restartu w formacie HDF5 daje przedsmak bardziej zaawansoanej analizy wyników symulacji 3D.

(*SetDirectory[NotebookDirectory[]<>"/GR1D/test"];*)

urlPrefix="https://th.if.uj.edu.pl/~odrzywolek/homepage/students/aa/2025/W13/data/";

html=Import[urlPrefix,"Source"];

dumps=StringCases[html,RegularExpression["restart[^\"/]+\\.h5"]]//DeleteDuplicates;

dumps=(urlPrefix<>#&)/@dumps;

Import[urlPrefix<>"shock_radius_t.dat","Table"]//ListPlot (* Test: ruch [frontu] fali uderzeniowej *)

(*dumps=FileNames["*.h5"];*)

dumps[[-1]]

Import[dumps[[1]]]

dset=Import[dumps[[1]],"Datasets"]

elem=Import[dumps[[1]],"Elements"]

Import[dumps[[1]],elem[[6]]]

num=Dimensions[dumps][[1]]

timesteps=Table[Import[dumps[[ii]],{"Datasets","/tdump_restart"}],{ii,1,num}]//Flatten

c=299792458; (* Standardowe jednostki używane w symulacjach supernowych *)
G=6.67*10^-11;
Msun=1.99*10^30;

ρGR=c^6/G^3/Msun^2

ρNuclear=2.0*10^17;

ρTBL=Table[Import[dumps[[ii]],{"Datasets","/rho"}],{ii,1,num}];

Manipulate[
Show[
ListLogPlot[ρTBL[[ii]]*ρGR,Joined->True,InterpolationOrder->0,PlotRange->{10^-19,0.002}*ρGR,PlotLabel->"t="<>ToString[timesteps[[ii]]]<>" sec"],
LogPlot[ρNuclear,{x,0,1000},
PlotStyle->{DotDashed,Thin,Black},PlotLegends->{"gęstość\njądra\natomowego"}],AxesLabel->{"Zone","ρ [kg/(m^3)]"}
],
{ii,1,num,1}]

vTBL=Table[Import[dumps[[ii]],{"Datasets","/v"}],{ii,1,num}];

Manipulate[ListPlot[vTBL[[ii]],Joined->True,InterpolationOrder->0,PlotRange->{-0.3333,0.3333},PlotLabel->"t="<>ToString[timesteps[[ii]]]<>" sec",AxesLabel->{"Zone","v/c"},BaseStyle->FontSize->20,ImageSize->600,AxesStyle->Thick,PlotStyle->Red],{ii,1,num,1}]

Clear[Msun,G,c]

Msun/L^3/.Solve[{L^3/T^2/Msun==G,L/T==c},{L,T}] (* Gęstość w jednostkach G=c=Msun=1 *)

Manipulate[
{{
Show[
ListLogPlot[ρTBL[[ii]]*ρGR,Joined->True,InterpolationOrder->0,BaseStyle->FontSize->16,AxesStyle->Thick,PlotRange->{10^-19,0.002}*ρGR,PlotLabel->"t="<>ToString[10.^-4 *ii]<>" sec",ImageSize->600],
LogPlot[ρNuclear,{x,0,1000},BaseStyle->FontSize->16,AxesStyle->Thick,PlotStyle->{DotDashed,Thick,Black},PlotLegends->{"gęstość\njądra\natomowego"}],AxesLabel->{"Zone","ρ [kg/(m^3)]"},AspectRatio->1/2
]
},
{ListPlot[vTBL[[ii]],Joined->True,InterpolationOrder->0,PlotRange->0.5{-1,1},AxesLabel->{"Zone","v/c"},BaseStyle->FontSize->16,ImageSize->600,AxesStyle->Thick,PlotStyle->Red,AspectRatio->1/2]}
}//TableForm,
{ii,1,num,1}]